package com.剑指offer一;

/**
 * @ClassName: MissingNumber
 * @Description: TODO(剑指 Offer 53 - II. 0 ～ n - 1中缺失的数字)
 * @author: li
 * @Date: 2021/12/19 10:50 下午
 */
public class MissingNumber {
    /**
     * 二分查找
     * @param nums
     * @return
     */
    public int missingNumber(int[] nums) {
        // 如果出现所有元素都有的这种情况，就直接返回nums.length
        if(nums[nums.length-1]==nums.length-1){
            return nums.length;
        }
        int left =0,right = nums.length-1;
        // 最右边的值取不到，始终是左闭右开
        while (left<right){
            int mid = left+(right-left)/2;
            // 不可出现小于的情况
            if (nums[mid]==mid){
                left = mid+1;
            }else if(nums[mid]>mid){
                right = mid;
            }
        }
        return left;
    }
}
